package com.d0316;

import java.util.Scanner;

public class HomeworkException {
    static Scanner sc = new Scanner(System.in);// 定义一个扫描器，用于读取输入信息

    public static void main(String[] args) {// main方法

        div();
    }

    //div方法，用于得到2个小数，并且进行除法运算，如果被除数为0.抛出除零异常
    static void div() {
        double d1 = getNum("输入   除数");// 调用输入数字的方法
        double d2 = getNum("输入被除数");
        try {
            if (d2 == 0) {//如果被除数等于0，那么抛出除零异常
                throw new ArithmeticException("捕获到除零异常!!!");
            }
            double d3 = d1 / d2;
            System.out.println("计算结果：" + d1 + "/" + d2 + "=" + d3);
            // div();//可以重新调用div方法，再次进行输入
        } catch (ArithmeticException exception) {//捕获到除零异常
            System.out.println(exception.getMessage());//打印出异常信息
            // div();//当捕获异常后，也可以重新调用div方法，再次进行输入
        }
    }
    //getNum方法，用于得到一个数字
    static double getNum(String tips) {
        double dnum;// 定义一个小数变量
        while (true) {
            try {
                System.out.println(tips);// 显示提示文字
                String s1 = sc.nextLine();// 读取输入的一行信息
                dnum = Double.parseDouble(s1);// 如果可以把输入的信息转换成数字就跳出循环，
                // 如果无法把信息转成数字就会报数字格式异常
                break;//跳出循环
            } catch (NumberFormatException exception) {//捕获数字格式异常
                System.out.println("捕获到了数字格式错误异常!!!");//提示文字，并且继续循环
            }
        }
        return dnum;//返回数字
    }
}
